from django.db import models
from luffyapi.utils.models import BaseModel

# Create your models here.

class Banner(models.Model):
    """轮播⼴告图模型"""
    # 模型字段 将来我们的轮播图可能会承载⼴告。
    title = models.CharField(max_length=500, verbose_name="⼴告标题")
    link = models.CharField(max_length=500, verbose_name="⼴告链接")
    # upload_to 设置上传⽂件的保存⼦⽬录,将来上传来的⽂件会存到我们的media下⾯的banner⽂件夹下，这⾥存的是图⽚地址。
    # ⼤部分公司不会将图⽚、视频这些数据存在数据库中，⼀般都会保存在⼀个⽬录下，表中只是存储路径，
    # 如果说图⽚或者视频很⼩，也有公司直接将数据存储在数据库。（⽤的很少）
    # 将图⽚路径通过配置
    # 将你要上传的图⽚⽂件：uploads/banner/1.png
    image_url = models.ImageField(upload_to="banner", null=True, blank=True,
                                  max_length=255, verbose_name="⼴告图⽚")
    remark = models.TextField(verbose_name="备注信息")
    # 判断表中存的轮播图⽚是否发送到前端进⾏轮播
    is_show = models.BooleanField(default=False, verbose_name="是否显示")  # 将来轮播图肯定会更新，到底显示哪些
    orders = models.IntegerField(default=1, verbose_name="排序")
    # 程序中所有的数据基本都是假删除， 没有真删除。
    is_deleted = models.BooleanField(default=False, verbose_name="是否删除")

    # 表信息声明
    class Meta:
        db_table = "ly_banner"
        verbose_name = "轮播⼴告"
        verbose_name_plural = verbose_name

    # ⾃定义⽅法[⾃定义字段或者⾃定义⼯具⽅法]
    def __str__(self):
        return self.title


class Nav(BaseModel):
    """导航菜单模型"""
    POSITION_OPTION = (
        (1, "顶部导航"),
        (2, "脚部导航"),
    )

    title = models.CharField(max_length=500, verbose_name="导航标题")
    # 这些是有跳转功能的，有可能跳转到你的站内链接，外链站外连接
    link = models.CharField(max_length=500, verbose_name="导航链接")
    position = models.IntegerField(choices=POSITION_OPTION, default=1,
                                   verbose_name="导航位置")
    # 此字段是判断此条记录是站内链接还是站外链接的。True就是站外链接。
    is_site = models.BooleanField(default=False, verbose_name="是否是站外地址")

    class Meta:
        db_table = 'ly_nav'
        verbose_name = '导航菜单'
        verbose_name_plural = verbose_name